Симетричні та асиметричні методи зашифрування інформації

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра автоматики та телемеханіки

Інформація про роботу

Рік:
2005
Тип роботи:
Курсова робота
Предмет:
Методи та засоби криптографічних перетворень
Група:
ІБ – 42

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра автоматики та телемеханіки Курсова робота з курсу: „Методи та засоби криптографічних перетворень” на тему: “Симетричні та асиметричні методи зашифрування інформації” Львів – 2005 Зміст Завдання 1 Теоретичні відомості Вибір ключів Блок-схема алгоритму Список ідентифікаторів Текст програми Відкритий текст Результат зашифрування Висновки Завдання 2 Теоретичні відомості Вибір ключів Зашифрування Розшифрування Висновки Завдання 1 Вибрати ключі та розробити програму для за шифрування файлу даних заданим афінним шифром. Тип афінного шифру визначається останньою цифрою i НЗК. Об‘єм алфавіту визначається передостанньою цифрою j НЗК і дорівнює . I i mod 6 Тип афінного шифру  7 1 Лінійний 1-го порядку    j Розрядність алфавіту  Об‘єм алфавіту   4 9 512   Теоретичні відомості Вибір ключів  Блок-схема алгоритму   Список ідентифікаторів Ідентифікатори Призначення  unsigned long a=123 Ключ  unsigned long n=512 Розмір алфавіту  FILE *f_in Вхідний файл  FILE *f_out Зашифрований файл  int end_of_in_file=0 Прапорець кінця файлу  int x_is_ready=1 Прапорець готовності символа  unsigned long buf_in Вхідний буфер (32 біти)  unsigned long buf_out = 0 Вихідний буфер (32 біти)  unsigned long x Проміжний символ (9 біт)  int in_bits=32 Лічильник непрочитаних бітів вхідного буфера  int out_cells =32 Лічильник незаповнених бітів вихідного буфера   Текст програми #include <stdio.h> #include <math.h> #include <conio.h> #include <stdlib.h> unsigned long a=511, n=512; //a – ключ; n – об‘єм алфавіту void main(void) { FILE *f_in, *f_out; int end_of_in_file=0, x_is_ready=1; unsigned long buf_in, buf_out = 0, x; int in_bits=32, out_cells=32; //відкриваємо вхідний файл if ( (f_in=fopen(“c:\\data.in”, “rb”)) == NULL ) { printf(“cannot open the file data.fb”); getch(); exit(1); } else //відкриваємо вихідний файл if ( (f_out=fopen(“c:\\data.out”, “wb”)) == NULL ) { printf(“cannot open the file data.fbc”); getch(); exit(1); } else { //читаємо вхідний буфер даних if (fread(&buf_in, 1, 4, f_in) != 0) while (!end_of_in_file) { //читання символа x з вхідного буфера if (in_bits<=0) { if (fread(&buf_in, 1, 4, f_in) != 0) { x |= (buf_in << (9+in_bits)) & 511; buf_in >>= (-in_bits); in_bits += 32; x_is_ready = 1 & !(in_bits==32); } else { end_of_in_file = 1; x_is_ready = 1; } } else { x = buf_in & 511; buf_in >>= 9; in_bits -= 9; x_is_ready = 1 & (in_bits>=0); } //кінець читання символа x з вхідного буфера if (x_is_ready) { //шифрування символа х x = (unsigned int)(fmod(a*x, n)); printf(“%0x\n”, x); //запис символа х в вихідний буфер buf_out |= x << (32-out_cells); out_cells -= 9; if (out_cells<=0) { fwrite(&buf_out, 4, 1, f_out);//запис вихідного буфера у вихідний файл buf_out &= 0; if (out_cells==0) out_cells = 32; else { buf_out |= x >> (9+out_cells); out_cells += 32; } } } //кінець запису символа х у вихідний буфер } fcloseall(); } } Відкритий текст Методи чисельного розв‘язування систем лінійних рівнянь поділяються на дві групи: 1) „точні” (прямі) методи, які дозволяють одержати розв‘язок, якщо він існує, як скінченну кількість арифметичних операцій (наприклад: метод Крамера, метод н.ана-Гауса та н..); 2) наближені (ітераційні) методи, які дозволяють одержати розв‘язки системи лінійних рівнянь лише з заданою точністю з припущенням, що обчислення проводиться без округлень. Точний розв‘язок в даному випадку можна одержати я к результат нескінченно збіжного процесу. До таких методів відносять метод простої ітерації, метод Зейделя та н.. „Точні” методи використовуються при розв‘язуванні на ЕОМ систем невисокого порядку (n<103 де n –...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини